﻿using System;
using System.Linq;
using System.Collections.Generic;
using SIM.Geo.DA;
using SIM.Geo.BE;

namespace SIM.Geo.BL
{
    public class BLDireccionLabor
    {
        /// <summary>
        /// Método que devuelve la lista de direccion de labor
        /// </summary>
        /// <returns></returns>
        public List<DireccionLabor> ListarDireccionLabor()
        {
            return Accesor.ListarDireccionLabor();
        }

        /// <summary>
        /// Método para insertar un categoria de labor
        /// </summary>
        /// <param name="DireccionLabor"></param>
        /// <returns></returns>
        public int InsertarDireccionLabor(DireccionLabor direccionLabor)
        {
            return Accesor.InsertarDireccionLabor(direccionLabor);
        }
        /// <summary>
        /// Método para modificar un categoria de labor
        /// </summary>
        /// <param name="DireccionLabor"></param>
        public void ModificarDireccionLabor(DireccionLabor direccionLabor)
        {
            Accesor.ModificarDireccionLabor(direccionLabor);
        }
        /// <summary>
        /// Método para eliminar categoria de labor
        /// </summary>
        /// <param name="DireccionLabor"></param>
        public void EliminarDireccionLabor(DireccionLabor direccionLabor)
        {
            Accesor.EliminarDireccionLabor(direccionLabor);
        }
        /// <summary>
        /// Método que busca por nombre categoria de labor
        /// </summary>
        /// <param name="nombre"></param>
        /// <returns></returns>
        public List<DireccionLabor> BuscarDireccionLabor(string nombre)
        {
            return Accesor.BuscarDireccionLabor(nombre);
        }
        /// <summary>
        /// Método que devuelve categoria de labor por codigo
        /// </summary>
        /// <param name="codigoDireccionLabor"></param>
        /// <returns></returns>
        public DireccionLabor ObtenerDireccionLabor(int codigoDireccionLabor)
        {
            return Accesor.ObtenerDireccionLabor(codigoDireccionLabor);
        }

        /// <summary>
        /// Devuelve la lista para ComboBox, DropdownList, devuelve campos Value y Text
        /// </summary>
        /// <returns></returns>
        public List<ListItemInt> ObtenerListItem()
        {

            var result = Accesor.ListarDireccionLabor();
            return result
                .Select(x => new ListItemInt { Value = x.CodigoDireccion, Text = x.Descripcion }).ToList();

        }

        #region Accesor
        private static DADireccionLabor Accesor
        {
            [System.Diagnostics.DebuggerStepThrough]
            get { return new DADireccionLabor(); }
        }
        #endregion
    }
}
